perm filename SORT.RLS[206,JMC] blob sn#057941 filedate 1973-08-10 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	MERGE(U,V) ← IF NULL U THEN V
C00003 ENDMK
C⊗;
MERGE(U,V) ← IF NULL U THEN V
	ELSE IF NULL V THEN U
	ELSE IF CAR U < CAR V THEN CAR U . MERGE(CDR U,V)
	ELSE CAR V . MERGE(U,CDR V);

SORT U ← SORTA(U,NIL);

SORTA(U,V) ← IF NULL U THEN SORTB(NIL,V)
	ELSE SORTA(CDR U,SORTC(LIST CAR U,V));

SORTC(U,V) ← IF NULL V THEN LIST U
	ELSE IF NULL CAR V THEN U . CDR V
	ELSE NIL . SORTC(MERGE(U,CAR V),CDR V);

SORTB(U,V) ← IF NULL V THEN U ELSE SORTB(MERGE(U,CAR V),CDR V);

END;